import request from './request'

/**
 * 获取招聘会列表
 * @param {Object} params - 查询参数 {page, size, title, status}
 * @returns {Promise}
 */
export function getJobFairs(params) {
  return request({
    url: '/jobfairs',
    method: 'get',
    params
  })
}

/**
 * 获取招聘会详情
 * @param {Number|String} id - 招聘会ID
 * @returns {Promise}
 */
export function getJobFairDetail(id) {
  return request({
    url: `/jobfairs/${id}`,
    method: 'get'
  })
}

/**
 * 获取招聘会参展企业列表
 * @param {Number|String} id - 招聘会ID
 * @returns {Promise}
 */
export function getJobFairCompanies(id) {
  return request({
    url: `/jobfairs/${id}/companies`,
    method: 'get'
  })
}

/**
 * 获取招聘会职位列表
 * @param {Number|String} id - 招聘会ID
 * @returns {Promise}
 */
export function getJobFairJobs(id) {
  return request({
    url: `/jobfairs/${id}/jobs`,
    method: 'get'
  })
}

/**
 * 创建招聘会
 * @param {Object} data - 招聘会数据
 * @returns {Promise}
 */
export function createJobFair(data) {
  return request({
    url: '/jobfairs',
    method: 'post',
    data
  })
}

/**
 * 更新招聘会
 * @param {Number|String} id - 招聘会ID
 * @param {Object} data - 招聘会数据
 * @returns {Promise}
 */
export function updateJobFair(id, data) {
  return request({
    url: `/jobfairs/${id}`,
    method: 'put',
    data
  })
}

/**
 * 取消招聘会
 * @param {Number|String} id - 招聘会ID
 * @returns {Promise}
 */
export function cancelJobFair(id) {
  return request({
    url: `/jobfairs/${id}/cancel`,
    method: 'put'
  })
}

/**
 * 用户报名招聘会
 * @param {Number|String} id - 招聘会ID
 * @returns {Promise}
 */
export function registerForJobFair(id) {
  return request({
    url: `/jobfairs/${id}/register`,
    method: 'post'
  })
}

/**
 * 企业报名招聘会
 * @param {Number|String} id - 招聘会ID
 * @param {Number|String} companyId - 企业ID
 * @returns {Promise}
 */
export function registerCompanyForJobFair(id, companyId) {
  return request({
    url: `/jobfairs/${id}/company/register`,
    method: 'post',
    params: { companyId }
  })
}

/**
 * 检查企业是否已报名招聘会
 * @param {Number|String} id - 招聘会ID
 * @param {Number|String} companyId - 企业ID
 * @returns {Promise}
 */
export function checkCompanyRegistered(id, companyId) {
  return request({
    url: `/jobfairs/${id}/company/check`,
    method: 'get',
    params: { companyId }
  })
}

/**
 * 检查用户是否已报名招聘会
 * @param {Number|String} id - 招聘会ID
 * @returns {Promise}
 */
export function checkUserRegistered(id) {
  return request({
    url: `/jobfairs/${id}/check-registration`,
    method: 'get'
  })
} 